home *** CD-ROM | disk | FTP | other *** search
- 5. Suchen und Ersetzen
- ----------------------
-
- Eine besondere Stärke von 7UP ist das Suchen und Ersetzen von
- Textstellen. 7UP verfügt dazu über leistungsfähige Funktionen aus
- der §UNIX§COPYRIGH§-Welt, die einer genaueren Beschreibung bedürfen.
-
- Öffnen Sie das Menü "Suchen/Ersetzen...".
- In den ersten beiden Eingabefeldern wird der String nach dem
- gesucht werden soll, sowie der eventuelle Ersatz eingegeben.
- Welcher Suchmodus benutzt wird, hängt von der Stellung der
- Schalter (Runde Knöpfe) ab. Diese Radiobuttons genannten Knöpfe
- lassen sich nur wahlweise betätigen. Die anderen "ankreuzbaren"
- Kästchen können Sie fast nach Belieben zusätzlich anklicken,
- falls sie nicht gesperrt sind. Die Kästchen erscheinen dann
- optisch schwächer, "DISABLED".
-
- Wenn ein §Block§BLOCK§ markiert ist, so interpretiert 7UP, ob ein zu
- suchender Ausdruck markiert ist, oder ob im Block gesucht werden
- soll. Ist der Block mehrere Zeilen lang, so wird er als Suchbereich
- interpretiert, ist es nur ein Wort oder höchstens eine Zeile, so
- muβ es der zu suchende Ausdruck sein. Sie erkennen das daran, daβ
- das Kästchen "im Block" evtl. schon markiert ist, wenn Sie das
- Menü öffnen.
-
- 7UP verfügt über drei Suchmodi:
-
- 5.1. Die GREP-Funktion (Get Regular ExPression, Regulärer Ausdruck).
- GREP sucht nach Mustern im Text, deren genaue Zusammensetzung
- nicht bekannt ist. Es sollen Beispielsweise alle Worte im Text
- gefunden werden, die statt des Umlautes 'ü', mit "ue" ge-
- schrieben sind. Allerdings sollen Ausdrücke wie "Quelle" oder
- "aktuell" dabei unberücksichtigt bleiben, da diese ja keine
- Umlaute enthalten. Man gibt als Suchmuster "[^Q]ue[^l]" ein
- (Die Hochkommata selbstverständlich nicht, sie dienen nur der
- Kenntlichmachung). "ue" steht dabei für den Umlautersatz, die
- eckigen Klammern beinhalten die Buchstaben, deren Finden ver-
- mieden werden soll. Es heiβt also: suche alle "ue" die vorher
- kein "Q" und nachher kein 'l' haben. '^' ist also ein Aus-
- schlieβlichkeitszeichen. Eine Unterscheidung zwischen Groβ-
- und Kleinschreibung findet nicht statt. Möchte man nun alle
- "ue" finden, die kein Umlautersatz sind, so kann man mit
- "[Q]ue[l]" gezielt nach "Quelle" oder "aktuell" suchen, weil
- hier nun '^' in der Klammer fehlt. Dabei gibt es grundsätzlich
- das Problem, daβ man natürlich genau wissen muβ, welche Worte
- nun auf das Suchmuster zutreffen und welche nicht. Nach diesem
- Muster fällt natürlich ein Wort wie "Suelze" aus dem Netz,
- da hier ja nun ein 'l' hinter "ue" steht. Wir müssen also das
- Suchmuster erweitern. Wir suchen nun alle "ue" ohne 'Q' davor
- und ohne 'l' danach, aber hinter 'l' darf ein 'z' stehen.
- Geben Sie also "ue[l][^l]" ein und hoffen, daβ "Suelze" nun
- gefunden wird.
-
- Ein zweites Beispiel:
- Sie möchten in Ihrem Text alle '/' finden, denen eine Ziffer
- voransteht, und denen ein Buchstabe folgt. also z.B. "22/BR"
- nicht aber "138/0.5". Das Suchmuster lautet dann "[0-9]/[a-z]".
- Vor dem '/' sind nur Ziffern, hinter dem '/' nur Buchstaben
- erlaubt. Als zweite Lösung bietet sich ":d/:a" an. Erklärung
- s.u.
-
- Ein drittes Beispiel:
- Es sollen alle Worte gefunden werden, die mit einer Ziffer
- beginnen. Also z.B. "7UP". Da davor ein Leerzeichen erwartet
- wird, lautet das Suchmuster dann ": [0-9]".
-
- Viertes Beispiel:
- Es sollen alle Interpunktionen am Zeilenende gefunden werden.
- z.B. Satzendekennung '.'. Geben Sie "\.$" ein. Bedenken Sie,
- daβ der '.' ein Sonderzeichen ist und quotiert werden muβ.
- Das '$'-Zeichen steht für das Zeilenende, und muβ natürlich
- auch am Ende des regulären Ausdrucks stehen. Wenn Sie alle
- Interpunktionen am Zeilenende finden wollen, geben Sie
- "[,;.:!?]$" ein. (Dies ist tatsächlich kein COMIC-Schimpfwort!)
-
-
- ANMERKUNG:
- Die Hochkommata vor und hinter den Beispielen werden selbst-
- verständlich nicht eingegeben, sie dienen nur der Kenntlich-
- machung innerhalb dieser Dokumentation.
- Der Reguläre Ausdruck beschreibt das zu suchende Muster. Es
- findet keine Unterscheidung zwischen Groβ- und Kleinschreibung
- statt. Die Suchmöglichkeiten entsprechen aus technischen
- Gründen nicht dem vollen Leistungsumfang des §UNIX§COPYRIGH§-Programms
- GREP.
-
- Hier eine Aufstellung derjenigen Sonderzeichen, mit denen eine
- recht präzise Formulierung der Suchkriterien möglich ist:
-
- '.' Der Punkt steht für ein beliebiges Zeichen.
-
- '^' Das Caret steht für den Zeilenanfang (implementiert, aber
- nicht funktionsfähig; muβ aber gequotet werden. s.u.).
-
- '$' Das Dollarzeichen steht für das Zeilenende.
-
- '\' Der Backslash quotiert jedes Zeichen. Um das '.'-Zeichen
- selbst darstellen zu können, schreiben Sie "\."; ebenso "\\",
- "\^", "\$". Sonderzeichen müssen grundsätzlich quotiert
- werden.
-
- Der Doppelpunkt beschreibt die Klasse des zu suchenden
- Zeichens.
- ':a' steht für ein alphabetisches Zeichen,
- ':d' für eine Ziffer,
- ':n' für ein alphanumerisches Zeichen,
- ':.' für Interpunktionen,
- ': ' für das Leerzeichen.
-
- '*' Wenn einem Zeichen ein '*' folgt, bedeutet das, daβ das
- letzte Zeichen garnicht auftritt, oder sich beliebig oft
- wiederholen darf."fo*" findet "f", "fo", "foo", "fooo" usw.
-
- '+' Wie '*', jedoch muβ das letzte Zeichen mindestens einmal
- auftreten."fo*" findet "fo", "foo", "fooo" usw.
-
- '[]' Zeichensatz.
- Eine Zeichenkette in eckigen Klammern steht für genau diese
- Zeichen, aber keine anderen. Wenn das erste Zeichen ein '^'
- ist, sind diese Zeichen von der Suche ausgeschlossen.
- Z.B.: "[xyz]" steht für "xx" und "zyx", während "[^xyz]"
- zwar "abc" nicht aber "axb" findet. Ein Zeichenbereich kann
- durch '-' angegeben werden. Beachten Sie bitte, daβ [a-z]
- jedes alphabetische Zeichen, aber [z-a] überhaupt kein
- alphabetisches Zeichen findet. Ziffern werden mit [0-9]
- angegeben. Dabei sind auch Einschränkungen möglich, z.B.
- [7-9] (also nur 7,8,9). Das gleiche gilt auch für Buch-
- staben, z.B. [m-z], oder [^a-bd-z?] sucht nur Buchstabe
- 'c', alle Ziffern, sowie Sonderzeichen auβer '?'. Die
- Reihenfolge der Zeichen in der Klammer spielt keine Rolle.
-
- In der Hilfebox können Sie diese Sonderzeichen und ihre Bedeutung
- noch einmal nachlesen, falls Sie sie gerade mal nicht genau wissen
- sollten.
-
- ANMERKUNG:
- Die Sonderzeichen werden innerhalb eines Zeichensatzes nicht
- gesondert interpretiert; das Caret '^' wird nur dann als Negation
- gewertet, wenn es direkt am Anfang des Zeichensatzes steht (also
- direkt hinter dem '['). Das '$' ist wird nur an letzter Stelle
- stehend richtig bewertet. '^' für den Zeilenanfang ist zwar
- implementiert, aber nicht funktionsfähig, weil nach einer Fund-
- stelle innerhalb einer Zeile noch weiter gesucht wird, und daher
- der GREP-Funktion ein neuer Zeilenanfang vorgegaukelt wird. Die
- Verknüpfung von Regulären Ausdrücken ist wieder ein Regulärer
- Ausdruck.
-
- ANMERKUNG: Die Suche mit regulären Ausdrücken ist nicht trivial und
- erfordert ein gewisses Maβ an Übung. Es kann auch sein, daβ
- bestimmte Ausdrücke nicht gefunden werden, weil man dafür das
- Suchmuster nicht formulieren kann. GREP ist also auch nicht
- "allfindend".
-
-
- 5.2. Die Matchfunktion.
-
- Diese Funktion wird vor allen Dingen MSDOS Anwendern bekannt vor-
- kommen, denn es wird hier mit Wildcards, vorzugsweise '*' und '?',
- gesucht. Nehmen wir an, Sie haben eine Stückliste mit Artikelnummern
- vor sich, und möchten nun alle Nummern heraussuchen, die für eine
- bestimmte Bauteilegruppe typisch sind z.B.: 99XXX450, wobei XXX für
- drei beliebige Ziffern steht. Man gibt daher als Suchmuster
- "99???450" ein. Hier gibt es nun eine Besonderheit. Dieses Such-
- muster setzt nämlich voraus, das nichts weiter als "99???450" in
- der Zeile steht. Da wir aber noch mehr Zeichen in der Zeile
- erwarten, müssen wir noch weitere beliebige Zeichen vor und hinter
- der Artikelnummer einkalkulieren. Wir erweitern also das Suchmuster
- auf das Format "*99???450*". Die Sterne vor und hinter der Art.Nr.
- stehen für beliebige und beliebig viele Zeichen. Die Wildcards sind
- also '?' für ein beliebiges Zeichen und '*' für beliebig viele
- Zeichen. Wenn sie nun ausgerechnet nach '*' oder '?' suchen wollen,
- müssen Sie die Wildcards ändern. Das können Sie in den Ein-
- gabefeldern All- und Existenzquantoren. Dabei gilt, daβ die
- Quantoren selbst in den zu suchenden Textstellen nicht vorkommen
- dürfen. Sie können auch noch Textstellen an Anfang der Zeile, sowie
- am deren Ende suchen, wenn Sie die Quantoren entspechend ein-
- schränken. Wollen Sie die Art.Nr. am Anfang der Zeile suchen, so
- geben Sie "99???450*" ein. An Ende der Zeile wäre das entsprechend
- "*99???450". Auch hier sollte ein wenig geübt werden. Die Hoch-
- kommata vor und hinter den Beispielen werden selbstverständlich
- nicht eingegeben, sie dienen nur der Kenntlichmachung innerhalb
- dieser Dokumentation.
-
- ANMERKUNG zu GREP und MATCH:
- Grundsätzlich gilt bei diesen Funktionen, daβ ein Ersetzen durch
- andere Buchstabenkombinationen nicht möglich ist, weil die genaue
- Länge der Suchmuster nicht exakt bestimmbar ist, und es deshalb zu
- ziemlich chaotischen Ersetzungen führen kann, die den Text total
- entstellen. Die Wildcardfunktionen sind also nur zum Suchen gedacht.
-
-
- 5.3. Suchen.
- Hier muβ das Suchmuster wie gewohnt exakt passen. Nur bei dieser
- Funktion ist auch eine Ersetzung möglich. Sie haben die Möglichkeit
- ab der aktuellen Cursorposition, ab Textanfang oder im markiertem
- Block zu suchen bzw. zu ersetzen. Die Einstellungen werden mit den
- ankreuzbaren Kästchen vorgenommen. Wenn eine bestimmte Kombination
- nicht möglich ist, werden die entsprechenden Kästchen "DISABLED",
- man kann Sie also nicht betätigen.
-
- 5.4. Ersetzen
- Hiermit wird die gefundene Textstelle gegen den Ersatz ausgetauscht.
- Wenn Sie einmal mehrere Worte auf diese Weise löschen wollen, so
- geben Sie als Ersatz einfach nichts ein, also einen Leerstring.
- Wenn Sie alles aufeinmal austauschen wollen, so wählen Sie den
- Knopf "alles". Bei der Einstellung "nachfragen" wird vor jeder
- Ersetzung nochmal nachgefragt, ob Sie damit einverstanden sind.
- Auβerdem wird in einer Dialogbox der Ersatzstring angezeigt und
- kann noch individuell geändert werden. Sie können damit die Fund-
- stelle durch verschiedene Texte ersetzen.